import { setListFn, numMap } from './../../../../utils';

import { printUnitNum } from './../adjustingSetting/printUnit';

const printUnitList: any = []; // 瓦楞 印刷单元
const printUnitAddList: any = []; // 齐调整
const printUnitBtnList: any = []; // 齐调整
const printUnitsBtnList: any = []; // 齐调整


for (let i = 0; i < printUnitNum; i++) {
  const key = i + 1;

  printUnitList.push({
    labelZh: `印刷${numMap[key]}单元`,
    labelEn: `Printing Unit ${key}`,labelRu: `Блок печати ${key}`,
    type: 'input',
    list: [
      {
        inputType: 'read',
        labelZh: '实际值',
        labelEn: 'Actual Value',labelRu: `Фактическое значение`,
        funId: `${key}ColorPhaseGet`,
        decimalPlaces: 1
      },
      {
        inputType: 'read',
        labelZh: '目标值',
        labelEn: 'Target Value',labelRu: 'Целевое значение',
        funId: `${key}ColorPhaseTarget`,
        decimalPlaces: 1
      },
      {
        inputType: 'write',
        labelZh: '增减值',
        labelEn: 'Difference Value',labelRu: `Значение увеличения или уменьшения`,
        funId: `${key}ColorPhaseAdd`,
        defaultValGetFunId: null,
        blurChange: true,
        writeOtherFunIdList: [
          {
            funId: `${key}ColorPhaseTarget`,
            inputType: 'readWrite',
            computedValInListObj: {
              num1: {
                funId: `${key}ColorPhaseGet`,
                decimalPlaces: 1
              },
              computedType: 'add',
              num2: {
                funId: `${key}ColorPhaseAdd`
              }
            },
            decimalPlaces: 1
          }
        ],
        updateClear: true
      },
      {
        inputType: 'btnBool',
        labelZh: '确定',
        labelEn: 'Confirm',
        funId: `${key}ColorPhaseBit`,
        defaultValGetFunId: null,
        labelTrueZh: '运行中',
        labelTrueEn: 'In Operation',
        labelFalseZh: '确定',
        labelFalseEn: 'Confirm',
        clickTime: 0
      }
    ]
  });

  printUnitAddList.push({
    funId: `${key}ColorPhaseTarget`,
    inputType: 'readWrite',
    computedValInListObj: {
      num1: {
        funId: `${key}ColorPhaseGet`,
        decimalPlaces: 1
      },
      computedType: 'add',
      num2: {
        funId: 'phaseAdd'
      }
    },
    decimalPlaces: 1
  });

  printUnitBtnList.push({
    funId: `${key}ColorPhaseBit`,
    inputType: 'btnBool',
    writeVal: 1
  });
  printUnitsBtnList.push({
    funId: `${key}ColorPhaseBit`,
    inputType: 'btnBool',
    writeVal: 0
  });

  // synchronizationPrintUnitList.push({
  //
  //   writeVal: 1,
  //   funId: `${key}ColorImprintingBtn`
  // });

  // printUnitList.push({
  //   type: 'common',
  //   labelZh: `印刷${numMap[key]}单元`,
  //   labelEn: `印刷${numMap[key]}单元[[en]]`,
  //   id: `adjustingPrintUnit${key}`,
  //   list: setPrintUnitListFn(unitDetailsList, key)
  // });
}

export default [
  {
    labelZh: `相位`,
    labelEn: `Phase`,
    id: `adjustingPhase`,
    saveParameters: false,
    list: [
      {
        type: 'common',
        labelZh: '相位套准调整',
        labelEn: 'Phase Register Adjustment',
        id: 'phase',
        saveParameters: false,
        priceList: [
          {
            labelZh: '实际值',
            labelEn: 'Actual Value',
            labelRu: 'Фактическое значение'
          },
          {
            labelZh: '目标值',
            labelEn: 'Target Value',
            labelRu: 'Целевое значение'
          },
          {
            labelZh: '增减值',
            labelEn: 'Difference Value',
            labelRu: `Значение увеличения или уменьшения`
          }
        ],
        list: setListFn([
          ...printUnitList,
          {
            labelZh: '开槽深度',
            labelEn: 'Slotting Depth',labelRu:'Глубина просечки',
            type: 'input',
            list: [
              {
                inputType: 'read',
                labelZh: '实际值',
                labelEn: 'Actual Value',
                labelRu: `Фактическое значение`,
                funId: 'slottingDepthGet',
                decimalPlaces: 1
              },
              {
                inputType: 'read',
                labelZh: '目标值',
                labelEn: 'Target Value',
                labelRu: 'Целевое значение',
                funId: 'slottingDepthTarget',
                decimalPlaces: 1
              },
              {
                inputType: 'write',
                labelZh: '增减值',
                labelEn: 'Difference Value',
                labelRu: `Значение увеличения или уменьшения`,
                funId: 'slottingDepthAdd',
                defaultValGetFunId: null,
                blurChange: true,
                writeOtherFunIdList: [
                  {
                    funId: 'slottingDepthTarget',
                    inputType: 'readWrite',
                    computedValInListObj: {
                      num1: {
                        funId: 'slottingDepthGet',
                        decimalPlaces: 1
                      },
                      computedType: 'add',
                      num2: {
                        funId: 'slottingDepthAdd'
                      }
                    },
                    decimalPlaces: 1
                  }
                ],
                updateClear: true
              },
              {
                inputType: 'btnBool',
                labelZh: '确定',
                labelEn: 'Confirm',
                funId: 'slottingDepthBit',
                defaultValGetFunId: null,
                labelTrueZh: '运行中',
                labelTrueEn: 'In Operation',
                labelFalseZh: '确定',
                labelFalseEn: 'Confirm',
                clickTime: 0
              }
            ]
          },
          // {
          //   labelZh: '模切单元',
          //   labelEn: 'Die-cutting Unit',
          //   labelRu: `Блок высечки`,
          //   type: 'input',
          //   list: [
          //     {
          //       inputType: 'read',
          //       labelZh: '实际值',
          //       labelEn: 'Actual Value',
          //       labelRu: `Фактическое значение`,
          //       funId: 'dieCuttingPhaseGet',
          //       decimalPlaces: 1
          //     },
          //     {
          //       inputType: 'read',
          //       labelZh: '目标值',
          //       labelEn: 'Target Value',
          //       labelRu: 'Целевое значение',
          //       funId: 'dieCuttingPhaseTarget',
          //       decimalPlaces: 1
          //     },
          //     {
          //       inputType: 'write',
          //       labelZh: '增减值',
          //       labelEn: 'Difference Value',
          //       labelRu: `Значение увеличения или уменьшения`,
          //       funId: 'dieCuttingPhaseAdd',
          //       defaultValGetFunId: null,
          //       blurChange: true,
          //       writeOtherFunIdList: [
          //         {
          //           funId: 'dieCuttingPhaseTarget',
          //           inputType: 'readWrite',
          //           computedValInListObj: {
          //             num1: {
          //               funId: 'dieCuttingPhaseGet',
          //               decimalPlaces: 1
          //             },
          //             computedType: 'add',
          //             num2: {
          //               funId: 'dieCuttingPhaseAdd'
          //             }
          //           },
          //           decimalPlaces: 1
          //         }
          //       ],
          //       updateClear: true
          //     },
          //     {
          //       inputType: 'btnBool',
          //       labelZh: '确定',
          //       labelEn: 'Confirm',
          //       funId: 'dieCuttingPhaseBit',
          //       defaultValGetFunId: null,
          //       labelTrueZh: '运行中',
          //       labelTrueEn: 'In Operation',
          //       labelFalseZh: '确定',
          //       labelFalseEn: 'Confirm',
          //       clickTime: 0
          //     }
          //   ]
          // },
          {
            labelZh: '齐调整',
            labelEn: 'Flush Adjustment',
            labelRu: 'Регулировка выравнивания',
            type: 'input',
            list: [
              {
                inputType: null
              },
              {
                inputType: null
              },
              {
                inputType: 'write',
                labelZh: '增减值',
                labelEn: 'Difference Value',
                labelRu: `Значение увеличения или уменьшения`,
                funId: 'phaseAdd',
                defaultValGetFunId: null,
                blurChange: true,
                writeOtherFunIdList: [
                  ...printUnitAddList,
                  {
                    funId: 'slottingDepthTarget',
                    inputType: 'readWrite',
                    computedValInListObj: {
                      num1: {
                        funId: 'slottingDepthGet',
                        decimalPlaces: 1
                      },
                      computedType: 'add',
                      num2: {
                        funId: 'phaseAdd'
                      }
                    },
                    decimalPlaces: 1
                  },
                  {
                    funId: 'dieCuttingPhaseTarget',
                    inputType: 'readWrite',
                    computedValInListObj: {
                      num1: {
                        funId: 'dieCuttingPhaseGet',
                        decimalPlaces: 1
                      },
                      computedType: 'add',
                      num2: {
                        funId: 'phaseAdd'
                      }
                    },
                    decimalPlaces: 1
                  }
                ],
                updateClear: true
              },
              {
                inputType: null
              }
            ]
          }
        ])
      },
      {
        type: 'settingWrite',
        labelZh: '设置值',
        labelEn: null,
        id: null,
        saveParameters: false,
        hiddenTitle: true,
        list: setListFn([
          {
            labelZh: '相位总调整',
            labelEn: 'Total Phase Adjustment',
            labelRu: 'Общая регулировка фазы',
            type: 'input',
            hiddenLabel: true,
            list: [
              {
                inputType: 'btnOtherOperate',
                labelZh: '相位总调整',
                labelEn: 'Total Phase Adjustment',
                labelRu: 'Общая регулировка фазы',
                // labelTrueZh: '相位总调整停止',
                // labelTrueEn: '相位总调整停止[[en]]',
                // labelFalseZh: '相位总调整',
                // labelFalseEn: '相位总调整[[en]]',
                funId: null,
                defaultValGetFunId: null,
                writeOtherFunIdList: [
                  ...printUnitBtnList,
                  {
                    writeVal: 1,
                    inputType: 'btnBool',
                    funId: 'slottingDepthBit'
                  },
                  // {
                  //   writeVal: 1,
                  //   inputType: 'btnBool',
                  //   funId: 'dieCuttingPhaseBit'
                  // }
                ]
              },
              {
                inputType: 'btnOtherOperate',
                labelZh: '相位总调整停止',
                labelEn: 'Total Phase Adjustment Stop',
                labelRu: 'Остановка общей регулировки фазы',
                // labelTrueZh: '相位总调整停止',
                // labelTrueEn: '相位总调整停止[[en]]',
                // labelFalseZh: '相位总调整',
                // labelFalseEn: '相位总调整[[en]]',
                funId: null,
                defaultValGetFunId: null,
                styleType: 'redBtnBgColor',
                writeOtherFunIdList: [
                  ...printUnitsBtnList,
                  {
                    writeVal: 0,
                    inputType: 'btnBool',
                    funId: 'slottingDepthBit'
                  },
                  // {
                  //   writeVal: 0,
                  //   inputType: 'btnBool',
                  //   funId: 'dieCuttingPhaseBit'
                  // }
                ]
              }
            ]
          }
        ])
      }
    ]
  }
];
